/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cr.co.tse.padronelectoral.win;

import cr.co.tse.padronelectoral.domain.VotanteInfo;

import java.awt.Component;
import java.util.List;
import javax.swing.table.DefaultTableModel;

/**
 * This class is used to render the votantes results.
 * @author jsanca
 */
public class VotantesTableModel extends DefaultTableModel {

    private String[] columnNames = new String[]{
        "Cedula",
        "Nombre",
        "Apellidos",
        "Provincia",
        "Canton",
        "# Junta",
        "Junta Receptora",
        "Lugar Electoral Inscrito"
    };
    private Component frame = null;
    private List<VotanteInfo> votantes = null;

    public VotanteInfo getVotante (int index) {
        
        VotanteInfo votanteInfo = null;

        if (this.votantes.size() > index) {

            votanteInfo = this.votantes.get(index);
        }

        return votanteInfo;
    } // getVotante.

    public VotantesTableModel(List<VotanteInfo> votantes, Component frame) {

        super();

        this.frame = frame;
        this.votantes = votantes;
    } // VotantesTableModel.

    @Override
    public String getColumnName(int col) {
        return (col >= 0 && col < this.columnNames.length) ? this.columnNames[col]
                : "";
    } // getColumnName.

    @Override
    public int getRowCount() {

        return (null != this.votantes) ? this.votantes.size() : 0;
    } // getRowCount.

    @Override
    public int getColumnCount() {
        return this.columnNames.length;
    } // getColumnCount.

    @Override
    public Object getValueAt(int row, int col) {

        Object value = "";
        VotanteInfo votante = null;

        if (row >= 0 && row < this.votantes.size()) {
            
			votante = this.votantes.get(row);
			switch (col) {

                case 0:

                    value = votante.getCedula();
                    break;

                case 1:

                    value = votante.getNombre();
                    break;
                case 2:

                    value = votante.getApellido1() + " " + votante.getApellido2();
                    break;
                case 3:

                    value = votante.getProvincia();
                    break;
                case 4:

                    value = votante.getCanton();
                    break;
                case 5:

                    value = votante.getJunta().getNumeroJunta();//votante.getJuntareceptora();
                    break;
                case 6:

                    value = votante.getJunta().getDireccion() + " " + votante.getJunta().getNombreJunta();
                    break;

                case 7:

                    value = votante.getLugarElectoralInscrito();
                    break;

            }
        }

        return value;
    } // getValueAt.

    public boolean isCellEditable(int row, int col) {

		return false;
	}
} // E:O:F:VotantesTableModel.
